package net.zjitc.yaobei_backed.util;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * 密码测试工具类
 * 用于验证和生成 BCrypt 密码哈希
 */
public class PasswordTestUtil {
    
    public static void main(String[] args) {
        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
        
        // 您数据库中的 bcrypt 哈希
        String dbHash = "$2a$10$KRYy.4IYvOe9Cv2LH2Q/.uBZ0yHROs.Gjemwym7ksQNkR.3CpY3mq";
        String password = "123456";
        
        System.out.println("=== 密码验证测试 ===");
        System.out.println("数据库中的哈希: " + dbHash);
        System.out.println("要验证的密码: " + password);
        
        boolean matches = encoder.matches(password, dbHash);
        System.out.println("密码匹配结果: " + matches);
        
        if (!matches) {
            System.out.println("\n❌ 密码不匹配！数据库中的哈希不是用 '123456' 生成的。");
            System.out.println("\n=== 生成新的正确哈希 ===");
            String newHash = encoder.encode(password);
            System.out.println("新的哈希值: " + newHash);
            System.out.println("验证新哈希: " + encoder.matches(password, newHash));
            System.out.println("\n请使用以下 SQL 更新数据库中的密码：");
            System.out.println("UPDATE user SET password = '" + newHash + "' WHERE username = 'your_username';");
        } else {
            System.out.println("\n✅ 密码匹配成功！问题可能在其他地方（如用户名错误、密码字段为空等）。");
        }
    }
}







